﻿using System.Windows.Forms;
using BadgeManager.Controller;
using BadgeManager.Model;

namespace Badge_Manager.View
{
    public partial class frmAbDisabTessera : Form
    {
        private Utente Utente;
        private Tessera Tessera;

        public frmAbDisabTessera(Utente Utente, Tessera Tessera)
        {
            InitializeComponent();
            this.Utente = Utente;

            if (Tessera != null)
            {
                this.Tessera = Tessera;
                txtCodiceTessera.Text = this.Tessera.Codice;
            }
            else
                this.Tessera = new Tessera();
        }

        //abilita la tessera e scrive nei movimenti
        private void AbilitaTessera(Tessera Tessera, bool abilita)
        {
            if (abilita)
            {
                new ctrlTessera().AbilitaTessera(Tessera);
                new ctrlMovimentiTessere().RegistraMovimento(Tessera, "Abilitata");
            }
            else
            {
                new ctrlTessera().DisabilitaTessera(Tessera);
                new ctrlMovimentiTessere().RegistraMovimento(Tessera, "Disabilitata");
            }
        }

        private void cmdOK_Click(object sender, System.EventArgs e)
        {
            if (txtCodiceTessera.Text.Trim() == "") { MessageBox.Show("Il codice tessera non è valido"); return; }
            if (!optAbilita.Checked && !optDisabilita.Checked) { MessageBox.Show("Nessuna operazione è stata selezionata"); return; }

            Tessera.Codice = txtCodiceTessera.Text;

            if (optAbilita.Checked)
            {
                AbilitaTessera(Tessera, true);
                MessageBox.Show("La carta è stata abilitata");
            }
            else if (optDisabilita.Checked)
            {
                AbilitaTessera(Tessera, false);
                MessageBox.Show("La carta è stata disabilitata");
            }

            frmElencoTessere.Istance(Utente).AggiornaGridDaEsterni(Tessera);
            cmdAnnulla_Click(null, null);
        }

        private void cmdAnnulla_Click(object sender, System.EventArgs e)
        {
            this.Close();
        }
    }
}